#ifdef OSGI_USE_15S_HEADER
#include "../interface/InterfaceDef.h"
#include "osgi-predefined.h"
#else // OSGI_USE_15S_HEADER
#ifndef OSGI_CORE_ILoggingService_h__
#define OSGI_CORE_ILoggingService_h__

#include "osgi-predefined.h"
#include "IService.h"

OSGI_NAMESPACE_BEGIN

#define IID_Logger "IID_Logger"
#define SID_AppLogger "SID_AppLogger"

OSGI_INTERFACE ILogger : public IService
{
	virtual ~ILogger() {};

	virtual void OSGI_API TraceLog(
		const char* bizType, 
		const char* fmt,
		...) = 0;

	virtual void OSGI_API InfoLog (
		const char* bizType, 
		const char* fmt, 
		...) = 0;

	virtual void OSGI_API DebugLog (
		const char* bizType, 
		const char* fmt, 
		...) = 0;

	virtual void OSGI_API WarnLog (
		const char* bizType, 
		const char* fmt, 
		...) = 0;

	virtual void OSGI_API ErrorLog (
		const char* bizType, 
		const char* fmt, 
		...) = 0;

	virtual void OSGI_API FatalLog (
		const char* bizType, 
		const char* fmt, 
		...) = 0;

	virtual void OSGI_API Destroy() = 0;
};

#define IID_LoggerFactory "IID_LoggerFactory"
#define SID_LoggerFactory "SID_LoggerFactory"


#define IID_TestLogger "IID_TestLogger"
#define SID_TestLogger "SID_TestLogger"

OSGI_INTERFACE ILoggerFactory : public IService
{
	virtual ~ILoggerFactory() {};

	virtual ILogger* OSGI_API CreateBundleLogger(
		const char* fileName, 
		const char* bundleName) = 0;

	virtual void OSGI_API Finalize() = 0;
};

OSGI_NAMESPACE_END

#endif // OSGI_CORE_ILoggingService_h__
#endif // OSGI_USE_15S_HEADER
